// technique-detail.js
Page({
  data: {
    techniqueType: '', // 技术类型：massage, moxibustion, cupping, guasha
    techniqueName: '', // 技术名称
    techniqueDesc: '', // 技术描述
    courses: [], // 课程列表
    selectedCourse: null, // 当前选中的课程
    selectedChapter: null, // 当前选中的章节
    videoContext: null, // 视频上下文
    isPlaying: false, // 是否正在播放
    currentTime: 0, // 当前播放时间
    duration: 0, // 视频总时长
    loading: false,
    error: null
  },

  onLoad(options) {
    console.log('技术详情页面加载，参数:', options)
    
    const techniqueType = options.type || 'massage'
    this.setData({ techniqueType })
    
    // 设置技术信息
    this.setTechniqueInfo(techniqueType)
    
    // 加载课程数据
    this.loadCourses(techniqueType)
  },

  // 设置技术信息
  setTechniqueInfo(techniqueType) {
    const techniqueInfo = {
      'massage': {
        name: '按摩',
        desc: '通过手法按摩促进血液循环，缓解肌肉紧张，改善身体机能',
        color: '#FF6B35'
      },
      'moxibustion': {
        name: '艾灸',
        desc: '利用艾叶燃烧产生的温热刺激穴位，温经散寒，扶阳固脱',
        color: '#8B5CF6'
      },
      'cupping': {
        name: '拔罐',
        desc: '通过负压吸引，疏通经络，活血化瘀，祛除邪气',
        color: '#10B981'
      },
      'guasha': {
        name: '刮痧',
        desc: '使用刮痧板刮拭皮肤，疏通经络，排出毒素，调节气血',
        color: '#3B82F6'
      }
    }
    
    const info = techniqueInfo[techniqueType] || techniqueInfo['massage']
    this.setData({
      techniqueName: info.name,
      techniqueDesc: info.desc,
      techniqueColor: info.color
    })
  },

  // 加载课程数据
  loadCourses(techniqueType) {
    this.setData({ loading: true, error: null })
    
    // 技术类型到关键词的映射（根据课程标题筛选）
    const keywordMapping = {
      'massage': ['按摩'],  // 只匹配标题为"按摩"的课程
      'moxibustion': ['艾灸'],
      'cupping': ['拔罐'],
      'guasha': ['刮痧']
    }
    
    console.log('技术类型:', techniqueType)
    console.log('关键词列表:', keywordMapping[techniqueType])
    
    const keywords = keywordMapping[techniqueType]
    
    // 使用现有的API接口，然后在前端筛选
    wx.request({
      url: 'http://localhost:8081/contentChapter/getCont',
      method: 'GET',
      success: (res) => {
        console.log('课程数据:', res.data)
        if (res.data && res.data.length > 0) {
          console.log('所有课程数据:', res.data)
          
          // 打印每个课程的标题，帮助调试
          res.data.forEach((course, index) => {
            console.log(`课程${index + 1}: ${course.title}, 分类ID: ${course.categoryId}`)
          })
          
          // 根据课程标题关键词筛选课程
          const filteredCourses = res.data.filter(course => {
            return keywords.some(keyword => course.title.includes(keyword))
          })
          console.log('筛选后的课程:', filteredCourses)
          
          const courses = filteredCourses.map(course => ({
            id: course.id,
            title: course.title,
            cover: course.cover,
            intro: course.intro,
            duration: course.duration,
            isFree: course.isFree === 1,
            isVipOnly: course.price > 0, // 价格大于0的课程需要VIP
            price: 0, // 不再显示价格，改为VIP限制
            viewCount: course.viewCount,
            lecturer: course.lecturer,
            organization: course.organization,
            chapterList: course.chapterList || []
          }))
          
          this.setData({
            courses: courses,
            selectedCourse: courses.length > 0 ? courses[0] : null, // 默认选择第一个课程
            loading: false
          })
          
          // 如果有章节，选择第一个章节
          if (courses.length > 0 && courses[0] && courses[0].chapterList && courses[0].chapterList.length > 0) {
            this.setData({
              selectedChapter: courses[0].chapterList[0]
            })
          }
        } else {
          this.setData({
            courses: [],
            loading: false
          })
        }
      },
      fail: (err) => {
        console.error('获取课程失败:', err)
        this.setData({
          courses: [],
          loading: false,
          error: '获取课程失败'
        })
        wx.showToast({
          title: '获取课程失败',
          icon: 'none'
        })
      }
    })
  },

  // 选择课程
  onCourseSelect(e) {
    const courseId = e.currentTarget.dataset.id
    const course = this.data.courses.find(c => c.id == courseId)
    
    if (course) {
      this.setData({
        selectedCourse: course,
        selectedChapter: course.chapterList && course.chapterList.length > 0 ? course.chapterList[0] : null
      })
      
      // 停止当前播放
      if (this.data.videoContext) {
        this.data.videoContext.stop()
      }
    }
  },

  // 选择章节
  onChapterSelect(e) {
    const chapterId = e.currentTarget.dataset.id
    const chapter = this.data.selectedCourse.chapterList.find(c => c.id == chapterId)
    
    if (chapter) {
      this.setData({
        selectedChapter: chapter
      })
      
      // 停止当前播放
      if (this.data.videoContext) {
        this.data.videoContext.stop()
      }
    }
  },

  // 播放/暂停视频
  onPlayPause() {
    if (!this.data.selectedChapter || !this.data.selectedChapter.videoUrl) {
      wx.showToast({
        title: '暂无视频',
        icon: 'none'
      })
      return
    }
    
    if (!this.data.videoContext) {
      this.data.videoContext = wx.createVideoContext('techniqueVideo', this)
    }
    
    if (this.data.isPlaying) {
      this.data.videoContext.pause()
      this.setData({ isPlaying: false })
    } else {
      this.data.videoContext.play()
      this.setData({ isPlaying: true })
    }
  },

  // 视频播放事件
  onVideoPlay() {
    this.setData({ isPlaying: true })
  },

  // 视频暂停事件
  onVideoPause() {
    this.setData({ isPlaying: false })
  },

  // 视频播放进度更新
  onVideoTimeUpdate(e) {
    this.setData({
      currentTime: e.detail.currentTime,
      duration: e.detail.duration
    })
  },

  // 视频播放结束
  onVideoEnded() {
    this.setData({ isPlaying: false })
  },

  // 格式化时间
  formatTime(seconds) {
    const mins = Math.floor(seconds / 60)
    const secs = Math.floor(seconds % 60)
    return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`
  },

  // 返回首页
  onBackHome() {
    wx.switchTab({
      url: '/pages/index/index'
    })
  },

  // 重试加载
  onRetry() {
    this.loadCourses(this.data.techniqueType)
  }
})
